/*
 * GerenciadorNotas.java
 *
 * Created on 02/07/2007, 09:11:53
 *
 */
package br.com.grillo.jturbonote;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.HashMap;
import org.apache.commons.io.FileUtils;
import static br.com.grillo.jturbonote.Configuracao.*;

/**
 *
 * @author grillo
 */
public class GerenciadorNotas {

    static final String SUFIXO_NOTA = ".nota";
    static final File dirBase = new File(System.getProperty("user.home"), ".jTurboNote");
    private static GerenciadorNotas gerente;
    private File diretorioArquivos;
    private File diretorioNotas;

    private GerenciadorNotas() {
        if (!dirBase.exists()) {
            dirBase.mkdir();
        }

        String temp = getValor("dir-arquivos");
        if (temp == null) {
            diretorioArquivos = new File(dirBase, "arquivos");
            escreve("dir-arquivos", diretorioArquivos.getAbsolutePath());
        } else {
            diretorioArquivos = new File(temp);
        }

        if (!diretorioArquivos.exists()) {
            diretorioArquivos.mkdirs();
        }

        temp = getValor("dir-notas");
        if (temp == null) {
            diretorioNotas = new File(dirBase, "notas");
            escreve("dir-notas", diretorioNotas.getAbsolutePath());
        } else {
            diretorioNotas = new File(temp);
        }

        if (!diretorioNotas.exists()) {
            diretorioNotas.mkdirs();
        }
    }

    static GerenciadorNotas getInstance() {
        if (gerente == null) {
            gerente = new GerenciadorNotas();
        }
        return gerente;
    }

    File getDiretorioArquivos() {
        return diretorioArquivos;
    }

    File getDiretorioNotas() {
        return diretorioNotas;
    }
    /*
    public HashMap<String, Nota> listaNotas() throws IOException {
    File[] lista = diretorioNotas.listFiles(new FileFilter() {

    @Override
    public boolean accept(File f) {
    boolean saida = f.getName().toUpperCase().endsWith(SUFIXO_NOTA);
    return saida;
    }
    });
    /* HashMap<String, Nota> saida = new HashMap<String, Nota>();
    for (File f : lista) {
    saida.put(f.getName(), carregaNota(f));
    }
    return saida;
    }

    private Nota carregaNota(

    File arquivoNota) throws IOException {
    Nota nota = new Nota();
    nota.setText

    (FileUtils.readFileToString(arquivoNota));
    return

    nota;
    }

    public void

    salvarNota(Nota nota) throws IOException {
    File arquivoNota = new File(diretorioNotas, nota.toString() + "." + SUFIXO_NOTA);
    FileUtils.writeStringToFile

    (arquivoNota, nota.getText());
    }
     */
}
